#pragma once
#include "Channel.h"
namespace xncc {
namespace foundation {
    class AcceptChannel final : public Channel
    {
      public:
        AcceptChannel(EventLoop* loop, int sock_fd);

        ~AcceptChannel() override = default;

        AcceptChannel(const AcceptChannel&)             = delete;
        AcceptChannel(const AcceptChannel&&)            = delete;
        AcceptChannel& operator=(const AcceptChannel&)  = delete;
        AcceptChannel& operator=(const AcceptChannel&&) = delete;

        auto Type() -> ChannelType::value override { return ChannelType::ACCEPT_CHANNEL; }
        void handleClose(const std::string& reason) override;
    };
}  // namespace foundation
}  // namespace xncc
